/*
 * Tencent is pleased to support the open source community by making Pebble available.
 * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
 * Licensed under the MIT License (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 * http://opensource.org/licenses/MIT
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 *
 */


#ifndef PEBBLE_RPC_ROUTER_H
#define PEBBLE_RPC_ROUTER_H

#include <stdint.h>
#include <string>
#include <vector>

namespace pebble {
namespace rpc {


class IRouter {
public:
    IRouter() {}
    virtual ~IRouter() {}

    virtual std::string Route(uint64_t key, const std::vector<std::string>& address) = 0;

    virtual int Route(uint64_t key, int size) = 0;
};

} // namespace rpc
} // namespace pebble


#endif
